home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
- REFERENCE MANUAL
-
- for the
-
- GENERIC ADVENTURE GAME SYSTEM
-
-
-
- by
-
- Mark J. Welch
-
-
- September 1, 1985
- Modified 6-15-86
-
-
- Copyright 1985, 1986 by Mark J. Welch
-
- All Rights Reserved
-
-
- _____________________________________________________________
- | |
- | The Generic Adventure Game System, in all source code and |
- | object code formats, and all related documents, are copy- |
- | right 1985,1986 by Mark Welch. The Generic Adventure Game |
- | System is distributed as Shareware, with restrictions as |
- | specified in the documentation. Commericial use without |
- | prior written permission is prohibited. |
- | GAGS is distributed as Shareware: if you like the |
- | program, please become a registered user by sending $15 |
- | to the author: Mark J. Welch |
- | P.O. Box 2049 |
- | San Francisco, CA 94126-2409 |
- | 415-845-2430 (voice) |
- | Fido 125/459 (private BBS node) |
- |_____________________________________________________________|
-
-
- R-1
-
-
- Introduction to the GAGS Reference Manual
- -----------------------------------------
-
- This document describes the precise syntax and rules for the data
- files relating to the Generic Adventure Game System (GAGS). Two
- data files are associated with each game: filename.DAT and
- filename.TTL.
-
-
- filename.TTL: The Opening Screen(s)
- --------------------------------
-
- The file filename.TTL is not "inspected" by GAGS in any way. The
- game program merely reads the file line by line and echoes it to
- the screen, pausing if the screen fills. (You might need to
- experiment with spacing if the "More" prompt obscures sections of
- text or graphics.)
-
- While any ASCII or IBM characters can be used -- including
- some control characters -- use of non-ASCII characters is not
- recommended if you believe the game might be used by people who
- do not have IBM-compatible systems. Note that Control-Z (a value
- of 26) is the end-of file character, so don't embed this
- character in your text.
-
- If you want your game to be covered by standard copyright
- protection, include the statement "Copyright <year> by <name>" in
- the opening screen, and provide a mailing address. The GAGS
- copyright notice, for the game "engine," will also be displayed
- after your opening screen.
-
-
- filename.DAT: The Main Data File
- ------------------------------
-
- Needless to say, filename.DAT is the file that takes all the work,
- and this reference manual is devoted to the syntax of that file.
-
-
- Classes: NOUNs, ROOMs, and CREATUREs
- ------------------------------------
- There are three classes of "things" in the game: NOUNs, VERBs,
- and CREATUREs. Each object defined must have a separate
- definition and description. Other specifications may pertain to a
- room or noun, as described in the precise syntax.
-
-
-
- R-2
-
- Structure of the .DAT file
- --------------------------------
- (A more formal syntax)
-
- The .DAT file consists of a set of definitions.
-
- Each definition is one of the following types; each type is also
- the introductory keyword of the definition:
-
- NOUN ROOM CREATURE INTRO
- NOUN_DESCR ROOM_DESCR CREATURE_DESCR
- TEXT SPECIAL PULL_DESCR
- PLAY_DESCR PUSH_DESCR TURN_DESCR
-
- Each definition is ended by a word beginning with the the string
- 'END_' (i.e. 'END_NOUN'). NOTE: While it is advisable to use
- matching keywords, GAGS only checks for the initial characters
- 'END_' and not for the complete appropriate end-of-block keyword.
-
- Comments: Any text which occurs outside a definition is
- considered a comment and is ignored. In addition, unknown words
- *within* a defintion are *usually* ignored as well. However, to
- avoid unpleasant surprises, it is recommended that a known
- nonsense word ('rem' or 'comment') be used at the start of all
- comment lines.
-
-
- DESCRiption types:
- ------------------
-
- Each description type consists merely of lines of ASCII text
- which are echoed to the screen when the user expects a
- description of something defined in the game.
-
- If the file contains the following lines:
-
- NOUN 2
- Globe
- Red
- .
- .
- .
- END_NOUN
-
- NOUN_DESCR 2
- The small red globe is a perfect sphere. It glows
- slightly.
- END_OF_NOUN
-
- NOUN_DESCR 3
- The towel is about eighteen inches wide by twenty-four
- inches long, and is quite soft.
- END_NOUN
-
- The result of a player typing 'examine globe' would be:
-
- The small red globe is a perfect sphere. It glows
- slightly.
-
-
- R-3
-
-
- NOUNs
- -----
-
- NOUN nnn <-- nn is a number from 201 to 299
- Name <-- one-word name of the noun
- Adjective <-- one-word adjective
- Short description of the noun
- REM ^-- a one-line description of the noun
- {other characteristics go here}-
- END_NOUN
-
- Other characteristics (optional):
-
- SIZE nn <-- nn is a number from 1 to 99+
- WEIGHT nn <-- nn is a number from 1 to 99+
- UNMOVABLE <-- default is movable (carryable)
- LOCATION nn <-- nn is a room number (1-199)
- READABLE <-- default is "not readable"
- {if READABLE then <TEXT nn>
- must also be defined}
- CLOSABLE <-- default is "not closable"
- CLOSED <-- default is "open"
- {if open then it can hold
- something}
- LOCKABLE <-- default is not lockable
- LOCKED <-- default is unlocked
- KEY nn <-- default is 0
- {noun nn unlocks this noun
- if it's lockable}
- EDIBLE <-- default is inedible
- DRINKABLE <-- default is undrinkable/solid
- POISONOUS <-- default is nonpoisonous
- {predictable effect if poisonous
- edible/drinkable noun is eaten}
- ON <-- default is 'off'
- PUSHABLE <-- default is not pushable
- {PUSH_DESCR nn recommended but
- not required if it is pushable}
- PULLABLE <-- (ditto, PULL_DESCR nn)
- PLAYABLE <-- (ditto, PLAY_DESCR nn)
- TURNABLE <-- (ditto, TURN_DESCR nn)
- IS_LIGHT <-- default is NOT is_light
- (IS_LIGHT -> illuminates any room
- defined as LIGHT 1 or LIGHT nnn
- where nnn is the noun number)
- POINTS <-- default is 0 (points awarded to player
- if object is held at game_end)
- CAN_SHOOT <-- default is can't shoot (can the
- weapon be used to shoot a
- creature? if not, it must be
- thrown)
- NUM_SHOTS <-- default is 0 (how many bullets/
- charges are there initially?
- decremented each time the noun is
- fired.)
-
-
- R-4
-
-
- ROOMs
- -----
- The syntax of a room definition:
-
-
- Required:
-
- |<-----significant----->|<------ignored------------------------>|
- |
-
- ROOM nnn <-- nnn is a number from 1 to 199
- Room Name <-- room name (no comments!)
- {other characteristics}
- END_ROOM
-
-
- Optional characteristics: <-- optional but at least one is
- strongly recommended
-
- |<-----significant----->|<------ignored------------------------>|
- |
-
- {direction} nnn <-- nnn is a number from 1 to 199
- (default is 0)
- {any one of 12 directions can be
- specified, from the list:
- NORTH NORTHEAST UP
- SOUTH SOUTHEAST DOWN
- EAST NORTHWEST ENTER
- WEST SOUTHWEST EXIT}
- SPECIAL nnn <-- optional, nnn is a room number.{If
- present, the current definition
- must include KEY xxx and there must
- be a SPECIAL nnn definition}
- KEY xxx <-- xxx is a noun number (201-299)
- {activates special nnn}
- LIGHT xxx <-- xxx is a noun number (201-299)
- OR the value 1 ("any light")
- {default is 0}
- POINTS xxx <-- xxx is number of points player is
- awarded just for getting here.
- Default is 0.
- GAME_END <-- if this line is in the def, the
- game ends as soon as the player
- enters the room (the room_descr
- is displayed, then the score).
- (Player loses game here.)
-
- GAME_WIN <-- if this line is in the def, the
- game ends as soon as the player
- enters the room (the room_descr
- is displayed, then the score).
- (Player wins game here.)
-
-
-
- R-5
-
- CREATUREs
- ---------
-
- Required:
-
- CREATURE nnn <-- nnn is a number from 301 to 399
- Name <-- one word name
- Adjective <-- one word adjective
- Short description of creature.
- ^-- a one-liner
- {optional characteristics}
- END_CREATURE
-
-
- Optional:
-
- LOCATION nn <-- nn is a room number from 1 to 199.
- {default is 0}
- WEAPON nn <-- nn is a noun number from 201 to 299
- {default is 0}
- {noun nnn kills this creature}
- HOSTILE <-- default is friendly
- THRESHHOLD n <-- {n is number of times monster can be
- unsuccessfully attacked before it
- kills the player - default 3}
- TIME_THRESH n <-- {n is number of turns player can be
- in the same room with the creature
- before it kills the player - default
- value is -1, or disabled}
-
-
-
-
- NOTE: A player cannot exit a room containing a hostile monster.
- When killed, creatures are relocated to LOCATION 0. Currently,
- friendly/non-hostile creatures have no effect on the game's outcome.
-
-
-
-
-
- SPECIALs
- --------
-
- If a player properly accesses the KEY to a SPECIAL, by acting on
- it in the proper ROOM in a defined manner (PLAY, PUSH, PULL,
- TURN), the player is relocated to the room specified in SPECIAL
- nn within the room definition, and the text defined in the SPECIAL nn
- definition is displayed. In reality, if the entry SPECIAL nn
- within the original room definition points to the same (current)
- room, the player will not actually be moved anywhere, and the
- only effect will be to display the SPECIAL text, which is
- arranged like the '_DESCR' texts. (If the SPECIAL is activated, the
- TURN_DESCR, etc. text is NOT displayed.)
-
- R-6
-
- TEXT:
- -----
-
- TEXT is like the '_DESCR' texts, except that it is displayed only
- when a noun is 'READ' by the player.
-
-
-
- Page Pauses
- -----------
- Normally, the game pauses after every 22 lines of text (so that the
- player can read it), and the player then hits <CR> to read more. As you
- play-test your game, you might try to adjust your paragraph or line
- spacing so that the page breaks don't come at awkward spots and confuse
- the player. This is probably most important in the title screen and the
- INTRO text; it is less controllable in the individual room descriptions.
-
-
- PLAY, PUSH, PULL, TURN:
- -----------------------
- If a noun is defined as playable, pushable, pullable or turnable
- and the player attempts to do so, the relevant '_DESCR' text is
- displayed. If the action is valid but there is no accompanying
- text, the player is informed that nothing interesting happens.
- EXCEPTION: if the specified action fulfills the current room's
- requirement for a SPECIAL, the push/pull/turn/play text is NOT
- displayed, and the SPECIAL nn text is displayed instead for the
- room the player is "moved" to.
-
- Note: While "touch" is a synonym for "push" within a game, TOUCH
- is NOT a keyword in a .DAT file. Use PUSHABLE and
- PUSH_DESCR, not TOUCHABLE or TOUCH_DESCR.
-
-
- INTRO
- -----
- The introductory text is displayed during the game's initialization
- and cannot be re-read later. It also cannot be skipped over. It is
- recommended that the INTRO text be put at the end of the data file since
- it is displayed as it is encountered during initialization (locating it
- at the top of the file would result in a long delay AFTER the
- introduction and long after the initialization delay message has
- vanished).
-
-
-
- LIGHTs and darkness
- -------------------
- If a room has been defined with a LIGHT value other than 0, it will
- appear dark if the player enters the room empty-handed. If the LIGHT
- value is 1, any noun serving as a light will make the room visible
- (provided that the noun has been turned on). If the LIGHT value is a
- number from 201 to 299, the room will only be visible if the player is
- carrying that noun (it need not be turned on).
-
-
- R-7
-
- EATing, DRINKing, and dying
- ---------------------------
- Any object defined as EDIBLE can be eaten. Any object defined as
- DRINKable can be drunk. And any object defined as POISONOUS will kill the
- player if s/he eats or drinks it. POISONOUS has no effect if the noun is
- neither edible nor drinkable. In most situations, it is considered poor
- sport to make completely non-threatening and logically edible things
- poisonous; it is likewise questionable to make packages of rat poison
- edible but non-poisonous.
-
-
- WEIGHT and SIZE
- ---------------
- Those values are there for a reason. No player can lift an object
- heavier than 100, even if it's defined as MOVABLE. Likewise, objects
- larger than 100 are too awkward to be carried. The total weight the
- player can carry is 100, so the player cannot carry two 60-weight objects
- at once. Total size limit is also 100. It is considered poor sport to
- assign large weight values to feathers and low values to large slabs of
- steel, but cruel gamewriters are able to do so. Likewise, a game will be
- less baffling if small objects (pens, tin cans) have small size values
- and large ones (desks, cars) are larger.
- (Remember, of course, that if your scenario puts the player in the
- role of King Kong or Godzilla, you'd want to scale everything down so
- s/he might be able to easily carry six cars and a bus but have difficulty
- with more than one fully-loaded semi or house.)
-
-
-
- SCORE (POINTS)
- --------------
- The player's progress in the game is reported in two ways: the number
- of rooms visited, and the number of points currently held. The player
- receives the defined number of points for visiting each room (default
- point value is 0), and for carrying each noun when scoring is done
- (default is 0). Players get no points for having eaten something, since
- objects which are eaten or drunk are removed from the game. There is no
- facility to reward the player for eating or punish the player for not
- eating.
- For best results, it is best to assign a point value to each room
- which the player arrives at after solving some puzzle. It's also wise to
- award a few points for out-of-the-way rooms. Objects should only have
- point values if they can reasonably be expected to be carried at the end
- of game -- if an object is too heavy to be lifted, it's not logical to
- assign it a point value. Also, make sure that the total weight and size
- of the point-valued objects doesn't exceed 99, since the player can't
- carry that weight.
-
-
- VERBs
- You can define a single synonym for each verb, as described in
- detail on page 2-16.
-
-
-
-
-
-